<?php



namespace PayPal\Api;



use PayPal\Common\PayPalModel;



/**

 * Class CreditFinancingOffered

 *

 * Credit financing offered to customer on PayPal side with opt-in/opt-out status

 *

 * @package PayPal\Api

 *

 * @property \PayPal\Api\Currency total_cost

 * @property \PayPal\Api\number term

 * @property \PayPal\Api\Currency monthly_payment

 * @property \PayPal\Api\Currency total_interest

 * @property bool payer_acceptance

 * @property bool cart_amount_immutable

 */

class CreditFinancingOffered extends PayPalModel

{

    /**

     * This is the estimated total payment amount including interest and fees the user will pay during the lifetime of the loan.

     *

     * @param \PayPal\Api\Currency $total_cost

     * 

     * @return $this

     */

    public function setTotalCost($total_cost)

    {

        $this->total_cost = $total_cost;

        return $this;

    }



    /**

     * This is the estimated total payment amount including interest and fees the user will pay during the lifetime of the loan.

     *

     * @return \PayPal\Api\Currency

     */

    public function getTotalCost()

    {

        return $this->total_cost;

    }



    /**

     * Length of financing terms in month

     *

     * @param \PayPal\Api\number $term

     * 

     * @return $this

     */

    public function setTerm($term)

    {

        $this->term = $term;

        return $this;

    }



    /**

     * Length of financing terms in month

     *

     * @return \PayPal\Api\number

     */

    public function getTerm()

    {

        return $this->term;

    }



    /**

     * This is the estimated amount per month that the customer will need to pay including fees and interest.

     *

     * @param \PayPal\Api\Currency $monthly_payment

     * 

     * @return $this

     */

    public function setMonthlyPayment($monthly_payment)

    {

        $this->monthly_payment = $monthly_payment;

        return $this;

    }



    /**

     * This is the estimated amount per month that the customer will need to pay including fees and interest.

     *

     * @return \PayPal\Api\Currency

     */

    public function getMonthlyPayment()

    {

        return $this->monthly_payment;

    }



    /**

     * Estimated interest or fees amount the payer will have to pay during the lifetime of the loan.

     *

     * @param \PayPal\Api\Currency $total_interest

     * 

     * @return $this

     */

    public function setTotalInterest($total_interest)

    {

        $this->total_interest = $total_interest;

        return $this;

    }



    /**

     * Estimated interest or fees amount the payer will have to pay during the lifetime of the loan.

     *

     * @return \PayPal\Api\Currency

     */

    public function getTotalInterest()

    {

        return $this->total_interest;

    }



    /**

     * Status on whether the customer ultimately was approved for and chose to make the payment using the approved installment credit.

     *

     * @param bool $payer_acceptance

     * 

     * @return $this

     */

    public function setPayerAcceptance($payer_acceptance)

    {

        $this->payer_acceptance = $payer_acceptance;

        return $this;

    }



    /**

     * Status on whether the customer ultimately was approved for and chose to make the payment using the approved installment credit.

     *

     * @return bool

     */

    public function getPayerAcceptance()

    {

        return $this->payer_acceptance;

    }



    /**

     * Indicates whether the cart amount is editable after payer's acceptance on PayPal side

     *

     * @param bool $cart_amount_immutable

     * 

     * @return $this

     */

    public function setCartAmountImmutable($cart_amount_immutable)

    {

        $this->cart_amount_immutable = $cart_amount_immutable;

        return $this;

    }



    /**

     * Indicates whether the cart amount is editable after payer's acceptance on PayPal side

     *

     * @return bool

     */

    public function getCartAmountImmutable()

    {

        return $this->cart_amount_immutable;

    }



}

